import 'dart:typed_data';

abstract class BaseUploadRequestOption {
  UploadFileType type;

  BaseUploadRequestOption(this.type);
}

class FileUploadRequestOption extends BaseUploadRequestOption {
  String filePath;
  bool keepFileName;

  FileUploadRequestOption({required UploadFileType type, required this.filePath, this.keepFileName = false}) : super(type);
}

class MemoryUploadRequestOption extends BaseUploadRequestOption {
  Uint8List file;
  String? fileName;
  String suffix;

  MemoryUploadRequestOption({required UploadFileType type, required this.file, this.fileName, required this.suffix}) : super(type);
}

enum UploadFileType {
  signature,
  media,
  doc
}